#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN=1020;
int a[MAXN];
int main(void){
    int r,n;
    while(~scanf("%d%d",&r,&n)){
        if(r==-1 && n==-1){
            break;
        }
        memset(a,0,sizeof(a));
        sort(a,a+n);
        int i=0;
        int ans=0;
        while(i<n){
            int s=a[i++];
            //一直向右找到距s距离大于r的点i 标记i-1
            //相当于这个直径的左部分
            while(i<n && a[i]<=s+r){
                i++;
            }
            //标记
            int p=a[i-1];
            //相当于直径的右部分
            //找到的这个点就是下一个区域的第一点点（不标记），重复操作
            while(i<n && a[i]<=p+r){
                i++;
            }
            ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}
